package com._51doit.day01.xingge例子.adv;

import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;

public class MyAdvListDemo {

    public static void main(String[] args) {

//        MyAdvList<Double> lst = new MyAdvList<>();
//        lst.add(1.0);
//        lst.add(2.0);
//        lst.add(3.0);
//        lst.add(4.0);
//        lst.add(5.0);

//        List<Double> nList = lst.filter(new MyFunction1<Double, Boolean>() {
//            @Override
//            public Boolean apply(Double b) {
//                return b > 3.0;
//            }
//        });


//
//        List<String> nList = lst.map(new MyFunction1<Double, String>() {
//            @Override
//            public String apply(Double b) {
//                return "doit" + b;
//            }
//        });
//
//        for (String s : nList) {
//            System.out.println(s);
//        }


//        MyAdvList<String> words = new MyAdvList<>();
//        words.add("spark");
//        words.add("hadoop");
//        words.add("flink");
//        words.add("hive");
//        words.add("hbase");

//        String r = words.filter(w -> w.startsWith("h")).map(w -> w.toUpperCase()).reduce((a, b) -> a + b);

//        for (String s : nList) {
//            System.out.println(s);
//        }

        //System.out.println(r);



        MyAdvList<String> lines = new MyAdvList<>();
        lines.add("spark,hive,hbase,flink");
        lines.add("hadoop,flink,hive");
        lines.add("flink");
        //使用flatMap将数据打平

        MyAdvList<String> words= lines.flatMap(new MyFunction1<String, Iterator<String>>() {
            @Override
            public Iterator<String> apply(String line) {
                return Arrays.asList(line.split(",")).iterator();
            }
        });

        for (String word : words) {
            System.out.println(word);
        }

    }
}
